<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../react18/react.development.js"></script>
    <script src="../react18/react-dom.development.js"></script>
    <!-- 引入BaBel的包，用来解析JSX语法为JS语法 -->
    <script src="../react18/babel.min.js"></script>
</head>
    <style>
        .outer{
            width: 200px;
            height: 200px;
            background-color: coral;
        }
    </style>
<body>
   <div id="app"></div>
   <!-- 如果需要bable对当前的script内部的jsx编译，则需要设置script的types属性 -->
   <script type="text/babel">//这个是默认的属性
    //获取一个真实dom
    const oApp=document.getElementById('app');
    console.dir(oApp,"真实DOM");    

    /* 
      虚拟DOM:
        本质就是Object类型的对象（一般对象）。
        虚拟DOM比较“轻”，真实DOM比较“重”，虚拟DOM是react内部在用的，无需真实DOM身上那么多的属性
        虚拟DOM早晚会被react转为真实DOM，呈现在页面上。
    */

    // 使用jsx方式创建虚拟DOM案例1  这个需要用baberl的包
    // const vDOM =<div> hello JSX</div>;
    // console.log("虚拟DOM",vDOM);
    // 使用jsx方式创建虚拟DOM案例2
    const vDOM=(
        <div className ="outer">
           <h1>JSX</h1>
           <p>JSX贼方便</p>
        </div>
    )
        console.log("虚拟DOM",vDOM);
        // 创建容器并渲染虚拟DOM
        ReactDOM.createRoot(document.getElementById('app')).render(vDOM)
   </script> 
</body>
</html>